<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 1. 先准备一个容器 -->
    <div id="app">
      <h3>小黑的书架</h3>
      <ul>
        <li v-for="item in booksList">
          <span>{{item.name}}</span>
          <span>{{item.author}}</span>
          <button @click="del(item.id)">删除</button>
        </li>
      </ul>
    </div>
    <!-- 2. 引框架 -->
    <script src="./vue.js"></script>
    <script>
      //   mvvm 数据响应式 只要把数据变了 视图就会跟着变
      //   需求 1. 列表渲染 2. 删除功能

      //   删除功能需要两步 第一步 要拿到当前要删除的这一项的索引值 第二步 splice

      // 3.初始化vue实例对象
      const vm = new Vue({
        el: "#app",
        data: {
          booksList: [
            { id: 1, name: "《红楼梦》", author: "曹雪芹" },
            { id: 2, name: "《西游记》", author: "吴承恩" },
            { id: 3, name: "《水浒传》", author: "施耐庵" },
            { id: 4, name: "《三国演义》", author: "罗贯中" },
          ],
        },
        methods: {
          del(id) {
            // console.log(id);//测试代码
            // 第一步 要拿到当前要删除的这一项的索引值
            // push pop shift unshift splice map forEach join reduce
            // 匹配条件 (item) => item.id === id 遍历数组每次得到一个item项 看item中的id和函数参数id值一样就说明找到了
            const index = this.booksList.findIndex((item) => item.id === id);
            // console.log(index);
            this.booksList.splice(index, 1);
          },
        },
      });
    </script>
  </body>
</html>
